home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Python 1.3.3 / Python 133 68K / Lib / img / img.py next >
Text File  |  1996-05-20  |  2KB  |  71 lines

  1. """Easy-to-use wrapper module to read and write images in any format,
  2. using any incore representation
  3. """
  4.  
  5. ##import addpack
  6. ##addpack.addpack('/ufs/jack/src/python_mods/img')
  7. import imghdr
  8. import imgppm
  9. import imgpgm
  10. import imgpbm
  11. import imggif
  12. import imgsgi
  13. import imgjpeg
  14. import imgtiff
  15. import imgconvert
  16. import string
  17. import os
  18.  
  19. from imgconvert import setquality, settrace
  20.  
  21. error = 'img.error'
  22. unsupported_error = imgconvert.unsupported_error
  23.  
  24. filedict = {
  25.     'rgb': imgsgi,
  26.     'gif': imggif,
  27.     'pgm': imgpgm,
  28.     'ppm': imgppm,
  29.     'pbm': imgpbm,
  30.     'tiff': imgtiff,
  31.     'tif': imgtiff,
  32.     'jpeg': imgjpeg,
  33.     'jpg': imgjpeg
  34. }
  35.  
  36. def reader(fmt, filename):
  37.     """Read any imagefile into any in-core format.
  38.     The imagefile is examined to determine what it is.
  39.     Args: format, filename"""
  40.     
  41.     filetype = imghdr.what(filename)
  42.     if not filetype:
  43.     raise error, 'Unknown image file type (bad magic number)'
  44.     if not filedict.has_key(filetype):
  45.     raise error, 'No support for image file type: '+filetype
  46.     module = filedict[filetype]
  47.     rdr = module.reader(filename)
  48.     if fmt == None:
  49.     return rdr
  50.     else:
  51.     return imgconvert.stackreader(fmt, rdr)
  52.  
  53. def writer(fmt, filename):
  54.     """Write any format imagefile (decided from the extension) from
  55.     any in-core format picture.
  56.     Args: format, filename"""
  57.     
  58.     root, ext = os.path.splitext(filename)
  59.     if ext:
  60.     ext = ext[1:]
  61.     if not filedict.has_key(ext):
  62.     raise error, 'No support for image file type: '+ext
  63.     module = filedict[ext]
  64.     wrr = module.writer(filename)
  65.     if fmt == None:
  66.     return wrr
  67.     else:
  68.     return imgconvert.stackwriter(fmt, wrr)
  69.     
  70.     
  71.